<?php
	session_start();
	require("includes/database.php");
	$texto = $_GET['texto'];
	$opcion = $_GET['op'];
	$idOrdenCompra = $_GET['idOrdenCompra'];
	$codigoTango = $_GET['codigoTango'];
	$codigoFabricante = $_GET['codigoFabricante'];
	$cantidadPedida = $_GET['cantidadPedida'];
	$cantidadRecibida = $_GET['cantidadRecibida'];
	$fechaIngreso = $_GET['fechaIngreso'];
	$idProveedor = $_GET['idProveedor'];
	$remitoIngreso = $_GET['remitoIngreso'];
	$imei = $_GET['imei'];
	$simlock = $_GET['simlock'];
	$codigoReferencia = $_GET['codigoReferencia'];
	$swVersion = $_GET['swVersion'];
	$hwVersion = $_GET['hwVersion'];
	$garantia = $_GET['garantia'];
	$fueraGarantia = $_GET['fueraGarantia'];
	$venta = $_GET['venta'];
	$partesAgregadas = $_GET['partesAgregadas'];
	
	switch($opcion)
	{
		case 1:
		{
			//Busca las partes que coincidan con el texto ingresado
			$sql = "select p.idParte, p.codigoTango, p.descripcionInterna from partes p where (p.descripcionInterna like '%$texto%') || (p.codigoTango like '%$texto%')";
			$partes = readSQL($sql);
			if(count($partes)>0)
			{
				echo '<select style="width:100%;" size="5" id="grdPartesEncontradas" name="grdPartesEncontradas" onKeyUp="if(event.keyCode == 13){tomarOpcionGrilla();}">';
			}
			foreach($partes as $parte)
			{
				echo '<option value="'.$parte['idParte'].'">'.$parte['codigoTango']." - ".$parte['descripcionInterna'].'</option>';
			}
			if(count($partes)>0)
			{
				echo '</select>';
			}
			
			break;
		}
		case 2:
		{
			//Agrega partes a una orden de compra
			$sql = "select idParte from partes where codigoTango = '$codigoTango' limit 1";
			$partes = readSQL($sql);
			foreach($partes as $parte)
			{
				$idParte = $parte['idParte'];
			}
			
			$sql = "insert into partesxordencompra set idParte = $idParte, idOrdenCompra = $idOrdenCompra, cantidadPedida = $cantidadPedida, cantidadRecibida = 0, cantidadCancelada = 0;";

			if($garantia != "false")
			{
				$sql .= "insert into tiposusoxpartexordencompra set idParte = $idParte, idTipoUso = '1', idOrdenCompra = $idOrdenCompra;";
			}
			if($fueraGarantia != "false")
			{
				$sql .= "insert into tiposusoxpartexordencompra set idParte = $idParte, idTipoUso = '2', idOrdenCompra = $idOrdenCompra;";
			}
			if($venta != "false")
			{
				$sql .= "insert into tiposusoxpartexordencompra set idParte = $idParte, idTipoUso = '3', idOrdenCompra = $idOrdenCompra;";
			}
			echo(transactionSQL($sql, true));
			
			break;	
		}
		case 3:
		{
			//Deshace el agregado de partes a una orden de compra
			$sql = "select idParte from partes where codigoTango = '$codigoTango' limit 1";
			$partes = readSQL($sql);
			foreach($partes as $parte)
			{
				$idParte = $parte['idParte'];
			}
			
			$sql = "delete from partesxordencompra where idParte = $idParte and idOrdenCompra = $idOrdenCompra;";
			$sql .= "delete from tiposusoxpartexordencompra where idParte = $idParte and idOrdenCompra = $idOrdenCompra;";
			echo(transactionSQL($sql, true));
			
			break;	
		}
		case 4:
		{
			//Es para recibir partes de una orden de compra
			$sql = "select p.idParte, tp.nombre as tipoParte, pxoc.cantidadPedida, pxoc.cantidadRecibida, pxoc.cantidadCancelada from partesxordencompra pxoc join partes p on pxoc.idParte = p.idParte join tipospartes tp on p.idTipoParte = tp.idTipoParte where p.codigoFabricante = '$codigoFabricante' and pxoc.idOrdenCompra = $idOrdenCompra limit 1";
			$partes = readSQL($sql);
			if(count($partes)>0)
			{
				$sql = "select nroRemitoLlegada from stock s where s.idProveedor = $idProveedor and nroRemitoLlegada = '$remitoIngreso'";
				$remitos = readSQL($sql);
				if(count($remitos)>0 && $partesAgregadas == 0)
				{
					echo "El Remito de Ingreso ingresado ya existe para este Proveedor.";
				}
				else
				{
					$fechaBD = preg_split('/\//',$fechaIngreso);
					$fechaBD = $fechaBD[2]."-".$fechaBD[1]."-".$fechaBD[0];
					
					foreach($partes as $parte)
					{
						$idParte = $parte['idParte'];
						$tipoParte = $parte['tipoParte'];
						
						$sql = "select a.idAlmacen from almacenes a where a.nombre =";
						switch($tipoParte)
						{
							case "Accesorio";
							{
								$sql .= " 'Accesorios Buenos'";
								break;	
							}
							case "Equipo";
							{
								$sql .= " 'Equipos Buenos'";
								break;	
							}
							case "Placa";
							{
								$sql .= " 'Placas Buenas'";
								break;	
							}
							default: //Sería una Parte
							{
								$sql .= " 'Partes'";
								break;	
							}
						}
						$sql .= " and a.idSucursal = ".$_SESSION['idSucursal'];
						
						$almacenes = readSQL($sql);
						foreach($almacenes as $almacen)
						{
							$idAlmacen = $almacen['idAlmacen'];	
						}
						
						$cantidadPosibleARecibir = $parte['cantidadPedida']-($parte['cantidadRecibida']+$parte['cantidadCancelada']);
						if($cantidadPosibleARecibir >= $cantidadRecibida)
						{
							$sql = "select idTipoUso from tiposusoxpartexordencompra tuxpxoc where tuxpxoc.idOrdenCompra = $idOrdenCompra and tuxpxoc.idParte = $idParte;";
							$idsTiposUso = readSQL($sql);
							$sql = "insert into stock set idParte = $idParte, idAlmacen = $idAlmacen, imei = '$imei', codigoReferencia = '$codigoReferencia', swVersion = '$swVersion', hwVersion = '$hwVersion', cantidad = $cantidadRecibida, fecha = '$fechaBD', simlock = '$simlock', idOrdenCompra = $idOrdenCompra, idProveedor = $idProveedor, nroRemitoLlegada = '$remitoIngreso';";
							foreach($idsTiposUso as $idTipoUso)
							{
								$id = $idTipoUso['idTipoUso'];
								$sql .= "insert into tiposusosxstock set idTipoUso = $id, idParte = $idParte, imei='$imei', idStock = LAST_INSERT_ID();";
							}
							$sql .= "update partesxordencompra set cantidadRecibida = cantidadRecibida + $cantidadRecibida where idParte = $idParte and idOrdenCompra = $idOrdenCompra;";
							//echo $sql;
							
							echo(transactionSQL($sql, true));
	
						}
						else
						{
							echo "La cantidad ingresada ($cantidadRecibida) es mayor a la cantidad que se puede recibir ($cantidadPosibleARecibir).";
						}
					}
				}
			}
			else
			{
				echo "La Parte con Código de Fabricante: $codigoFabricante no existe para la Orden de Compra ingresada.";
			}
			
			break;	
		}
		case 5:
		{
			//Es para deshacer la recepción de partes de una orden de compra
			$sql = "select p.idParte from partesxordencompra pxoc join partes p on pxoc.idParte = p.idParte where pxoc.idOrdenCompra = $idOrdenCompra and p.codigoFabricante = '$codigoFabricante' limit 1";
			
			$partes = readSQL($sql);
			if(count($partes)>0)
			{
				$fechaBD = preg_split('/\//',$fechaIngreso);
				$fechaBD = $fechaBD[2]."-".$fechaBD[1]."-".$fechaBD[0];
				
				foreach($partes as $parte)
				{
					$idParte = $parte['idParte'];
					$sql = "update partesxordencompra set cantidadRecibida = cantidadRecibida - $cantidadRecibida where idOrdenCompra = $idOrdenCompra and idParte = $idParte;";
					$sql .= "select @idStock:=idStock from stock where idParte = $idParte and cantidad = $cantidadRecibida and date_format(fecha,'%d/%m/%Y') = '$fechaIngreso' and idProveedor = $idProveedor and nroRemitoLlegada = '$remitoIngreso' limit 1;";
					$sql .= "delete from stock where idStock = @idStock;";
					$sql .= "delete from tiposusosxstock where idStock = @idStock;";
					echo(transactionSQL($sql, true));
				}
			}
			else
			{
				echo "La Parte con Código de Fabricante: $codigoFabricante no existe para la Orden de Compra ingresada.";
			}
			
			break;	
		}
		case 6:
		{
			//Es para daterminar si la parte que quiere agregar es placa o equipo
			$sql = "select tp.nombre as tipoParte from partes p join tipospartes tp on p.idTipoParte = tp.idTipoParte where p.codigoFabricante = '$codigoFabricante' limit 1";
			$partes = readSQL($sql);
			if(count($partes)>0)
			{
				foreach($partes as $parte)
				{
					$tipoParte = $parte['tipoParte'];
					echo(($tipoParte == "Placa" || $tipoParte == "Equipo"));
				}
			}
			else
			{
				echo "La Parte con Código de Fabricante: $codigoFabricante no existe para la Orden de Compra ingresada.";
			}
			
			break;	
		}
	}
?>
